home *** CD-ROM | disk | FTP | other *** search
/ Directorty Opus 5 - Magellan 2 / Opus 5 - Magellan 2.iso / Extras / opussdk / examples / envoymodule / envoy.h < prev    next >
C/C++ Source or Header  |  1996-08-27  |  3KB  |  92 lines

  1. #define CATCOMP_NUMBERS
  2. #include "envoy.strings"
  3.  
  4. #define _DOPUS_MODULE_DEF
  5. #include <dopus/modules.h>
  6.  
  7. extern ConfigWindow _envoy_window;
  8. extern ObjectDef _envoy_objects[];
  9.  
  10. enum
  11. {
  12.     ENVOY_LAYOUT=1,
  13.     GAD_ENVOY_OWNER,
  14.     GAD_ENVOY_OWNER_FIELD,
  15.     GAD_ENVOY_GROUP,
  16.     GAD_ENVOY_GROUP_FIELD,
  17.     GAD_ENVOY_OK,
  18.     GAD_ENVOY_CANCEL,
  19.     GAD_ENVOY_GROUP_READ,
  20.     GAD_ENVOY_GROUP_WRITE,
  21.     GAD_ENVOY_GROUP_EXECUTE,
  22.     GAD_ENVOY_GROUP_DELETE,
  23.     GAD_ENVOY_OTHER_READ,
  24.     GAD_ENVOY_OTHER_WRITE,
  25.     GAD_ENVOY_OTHER_EXECUTE,
  26.     GAD_ENVOY_OTHER_DELETE,
  27. };
  28.  
  29. void envoy_owner_list(struct Window *,ObjectList *,struct UserInfo *,struct Library *);
  30. void envoy_group_list(struct Window *,ObjectList *,struct GroupInfo *,struct Library *);
  31. BOOL envoy_check_owner(IPCData *,struct Window *,ObjectList *,struct UserInfo *,struct Library *,UWORD *);
  32. BOOL envoy_check_group(IPCData *,struct Window *,ObjectList *,struct GroupInfo *,struct Library *,UWORD *);
  33.  
  34. // Envoy stuff
  35. struct UserInfo
  36. {
  37.     UBYTE    ui_UserName[32];
  38.     UWORD    ui_UserID;
  39.     UWORD    ui_PrimaryGroupID;
  40.     ULONG   ui_Flags;
  41. };
  42.  
  43. struct GroupInfo
  44. {
  45.     UBYTE    gi_GroupName[32];
  46.     UWORD    gi_GroupID;
  47. };
  48.  
  49. struct UserInfo *AllocUserInfo( void );
  50. struct GroupInfo *AllocGroupInfo( void );
  51. void FreeUserInfo( struct UserInfo * );
  52. void FreeGroupInfo( struct GroupInfo * );
  53. ULONG VerifyUser( STRPTR userName, STRPTR password, struct UserInfo *user );
  54. ULONG MemberOf( struct GroupInfo *group, struct UserInfo *user );
  55. ULONG NameToUser( STRPTR userName, struct UserInfo *user );
  56. ULONG NameToGroup( STRPTR groupName, struct GroupInfo *group );
  57. ULONG IDToUser( unsigned long userID, struct UserInfo *user );
  58. ULONG IDToGroup( unsigned long groupID, struct GroupInfo *group );
  59. ULONG NextUser( struct UserInfo *user );
  60. ULONG NextGroup( struct GroupInfo *group );
  61. ULONG NextMember( struct GroupInfo *group, struct UserInfo *user );
  62. STRPTR ECrypt( STRPTR buffer, STRPTR password, STRPTR username );
  63. ULONG VerifyUserCrypt( STRPTR userName, STRPTR password,
  64.     struct UserInfo *user );
  65.  
  66. #pragma libcall AccountsBase AllocUserInfo 1e 00
  67. #pragma libcall AccountsBase AllocGroupInfo 24 00
  68. #pragma libcall AccountsBase FreeUserInfo 2a 801
  69. #pragma libcall AccountsBase FreeGroupInfo 30 801
  70. #pragma libcall AccountsBase VerifyUser 36 A9803
  71. #pragma libcall AccountsBase MemberOf 3c 9802
  72. #pragma libcall AccountsBase NameToUser 42 9802
  73. #pragma libcall AccountsBase NameToGroup 48 9802
  74. #pragma libcall AccountsBase IDToUser 4e 8002
  75. #pragma libcall AccountsBase IDToGroup 54 8002
  76. #pragma libcall AccountsBase NextUser 5a 801
  77. #pragma libcall AccountsBase NextGroup 60 801
  78. #pragma libcall AccountsBase NextMember 66 9802
  79. #pragma libcall AccountsBase ECrypt 6c A9803
  80. #pragma libcall AccountsBase VerifyUserCrypt 72 A9803
  81.  
  82. #define OLD_ACTION_Dummy            20000
  83.  
  84. #define OLD_ACTION_SET_USER         (OLD_ACTION_Dummy+0)
  85. #define OLD_ACTION_SET_GROUP        (OLD_ACTION_Dummy+1)
  86. #define OLD_ACTION_UID_TO_USERINFO  (OLD_ACTION_Dummy+2)
  87. #define OLD_ACTION_GID_TO_GROUPINFO (OLD_ACTION_Dummy+3)
  88.  
  89. #define ACTION_UID_TO_USERINFO      1037
  90. #define ACTION_GID_TO_GROUPINFO     1038
  91.  
  92.